【js基础】对浅拷贝和数组push()方法的一点理解 |
您所在的位置:网站首页 › js 复制数组 到新的数组中的数据 › 【js基础】对浅拷贝和数组push()方法的一点理解 |
浅拷贝
前提:JS中的变量都是保存到栈内存中的。 总结:基本数据类型和引用数据类型的变量(指针)是存在栈中,浅拷贝只拷贝了栈中的,所以会拷贝基本数据类型的值(数据有新内存)和引用数据类型的指针(数据没有新的内存)。 浅拷贝对象套对象的那种,就是对象属性又有对象的,只会拷贝一层,如果拷贝后修改里层对象的属性,原始数据的里层也会变化。 对于基本数据类型基本数据类型的值在栈内存中存储,每一个都在栈中有一个独立的内存空间。 对于引用数据类型是拷贝了一层的,拷贝的就是内存地址,所有的对象都指向这个地址的值,只要有一个对象对此地址的值进行改变,所有对象取到的值都会变化。 push()方法当push()添加引用数据类型时(数组,对象)都是浅拷贝,当添加的项发生改变时,原来的数据也会发生变化。 图例 对象中的基本数据类型被拷贝后改变,原始数据没有被改变改变push后的属性值,原属性值也变了: 改test里面的肯定也会变。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |